import type { AppRouteType } from "./type";

// / import.meta.glob() 直接引入所有的模块 Vite 独有的功能
const modules = import.meta.glob("./modules/**/*.ts", { eager: true });
//生成菜单列表时，如果包含子集，则遍历生成子集的菜单列表
// 加入到菜单集合中
const newMenuList: AppRouteType[] = [];

Object.keys(modules).forEach((key) => {
  const mod = (modules as any)[key].default || {};
  const modList = Array.isArray(mod) ? [...mod] : [mod];
  newMenuList.push(...modList);
});

//按orderNo排序
newMenuList.sort(
  (a, b) => (a?.meta?.order as number) - (b?.meta?.order as number)
);
newMenuList.forEach((item, index) => {
  if (item.children) {
    item.children.forEach((child) => {
      child.path = item.path + "/" + child.path;
    });
  }
});

export { newMenuList };
